#ifndef CREATEPAGE_H
#define CREATEPAGE_H

#define ImageMaxWidth 1000

#include <QWidget>
#include <QLabel>
#include <QVBoxLayout>
#include <QAction>
#include <QClipboard>
#include <QMimeData>
#include <QImage>
#include <QFileDialog>
#include <QFontComboBox>
#include <QSpinBox>
#include <QColorDialog>
#include <QTextEdit>
#include <QToolBar>
#include <QApplication>
#include <QKeyEvent>
#include <QBuffer>
#include <QMessageBox>
#include <QLineEdit>
#include <QPushButton>
#include <QActionGroup>
#include "component/PreviewDialog.h"
#include "component/BlogTextEdit.h"

class CreatePage : public QWidget
{
    Q_OBJECT
public:
    explicit CreatePage(QWidget *parent = nullptr);

    QString getTitle() const;       // 获取文章标题
    QString getHtmlContent() const; // 获取文章HTML内容用于保存
    QString getSummary() const;     // 获取文章摘要

    void setTitle(const QString &title);
    void setHtmlContent(const QString &htmlContent);

private:
    QLineEdit *titleEdit;           // 文章标题输入框
    QToolBar *toolBar;              // 工具栏
    BlogTextEdit *editor;           // 文章内容编辑框
    QLineEdit *attachmentPriceEdit; // 附件售价输入框
    QPushButton *uploadButton;      // 上传附件按钮
    QPushButton *publishButton;     // 发布文章按钮
    QString attachmentPath;         // 存储附件路径

    void setupUI();
    void setupToolbar();

signals:
    void previewSignal(const QString &title, const QString &htmlContent);
};

#endif // CREATEPAGE_H
